# 内置配置文件
import sys
import os

BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
sys.path.append(BASE_DIR)

DEBUG = True

# 日志输出模式
LOG_CONSOLE = 'DEBUG'
LOG_FILE = 'WARNING'

# 配置模式
MODE = "AGENT"  # SALT/SSH/AGENT
# 如果MODE = "SSH"
SSH_USER = "root"
SSH_PASSWORD = "zzw123"
SSH_KEY = "ssh_key_path"
SSH_PORT = 22


# 配置API
API = 'http://192.168.2.22:8080/api/agent/'

# 认证密钥
AUTH_KEY = 'zhangzhuowei|2021/8/29 15:30|version1'

# 配置模块
PLUGINS_DICT = {
    'basic': 'src.plugins.basic.Basic',
    'board': 'src.plugins.board.Board',
    'cpu': 'src.plugins.cpu.Cpu',
    'disk': 'src.plugins.disk.Disk',
    'memory': 'src.plugins.memory.Memory',
    'nic': 'src.plugins.nic.Nic',
}

# 日志配置
LOG_DIR = os.path.join(BASE_DIR, 'logs')
# print(BASE_DIR, LOG_DIR)
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    # 日志格式器配置
    'formatters': {
        'verbose': {
            'format': '%(levelname)s %(asctime)s %(module)s %(lineno)d %(message)s'
        },
        'simple': {
            'format': '%(levelname)s %(module)s %(lineno)d %(message)s'
        },
    },
    # 处理器配置
    'handlers': {
        # 终端处理器配置
        'console': {
            # 实际开发建议使用WARNING
            'level': LOG_CONSOLE,
            'class': 'logging.StreamHandler',
            'formatter': 'simple'
        },
        # 文件处理器配置
        'file': {
            # 实际开发建议使用ERROR
            'level': LOG_FILE,
            'class': 'logging.handlers.RotatingFileHandler',
            # 日志位置,日志文件名,日志保存目录必须手动创建，注：这里的文件路径要注意BASE_DIR代表的是小luffyapi
            'filename': os.path.join(LOG_DIR, "agent.log"),
            # 日志文件的最大值,这里我们设置300M，达到300M自动切割
            'maxBytes': 300 * 1024 * 1024,
            # 日志文件的数量,设置最大日志数量为10
            'backupCount': 10,
            # 日志格式:使用上面的格式器
            'formatter': 'verbose',
            # 文件内容编码
            'encoding': 'utf-8'
        },
    },
    # 日志对象
    'loggers': {
        # 日志实例名
        'agent': {
            'handlers': ['console', 'file'],
            'propagate': True,  # 是否让日志信息继续冒泡给其他的日志处理系统
        },
    }
}
